package com.ibeeking.gmc.global.g.rest.service;

import com.ibeeking.found.common.entity.DictDTO;
import com.ibeeking.gmc.global.service.common.param.DictValueParam;
import com.ibeeking.gmc.global.service.common.query.DictValuePageQuery;
import com.ibeeking.gmc.global.service.common.vo.DictSelectVO;
import com.ibeeking.gmc.global.service.common.vo.DictValuePageVO;
import com.ibeeking.gmc.global.service.common.vo.DictValueVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;
import java.util.Map;


/**
 * IDictValueService
 *
 * @Author ibeeking
 * @Date 2020-12-02 16:06
 */
public interface IDictValueService {

    /***
     * 分页查询
     * @param dictValuePageQuery
     * @return
     */
    Page<DictValuePageVO> pageList(DictValuePageQuery dictValuePageQuery);

    /***
     * 新增
     */
    Boolean add(DictValueParam dictValueParam);

    /***
     * 修改
     */
    Boolean modify(DictValueParam dictValueParam);

    /***
     * 通过id查询
     */
    DictValueVO view(Long id);

    /***
     * 修改状态
     */
    Boolean changeStatus(Long id, Integer status, Long userId);

    /***
     * 通过id删除
     */
    Boolean del(Long id);

    Long checkValue(String value, Long parentId);

    Long checkLable(String lable, Long parentId);

    List<DictDTO> queryDictByType(String dictType);

    DictDTO queryDictLable(String dictType, String dictValue);

    List<DictSelectVO> queryListByType(String dictType);

    List<DictDTO> queryDictByTypes(String[] dictTypes);

    List<DictDTO> queryDictLables(Map<String, String> paramMap);
}